package com.admin.service;

import com.admin.entity.StationKeyRecharge;
import com.admin.entity.TerminalKey;
import com.admin.excelList.TerminalListkey;
import com.admin.requestBody.TerminalPasswordRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author marisheng
 * @since 2019-11-21
 */
public interface ITerminalKeyService extends IService<TerminalKey> {


    /**
     * 查看该终端下已过期和使用中的密钥信息  和   根据开始时间和结束时间进行条件模糊查询详情
     * @param page
     * @param limit
     * @param map  终端编号  开始时间  结束时间
     * @return
     */
    public IPage findByTimeORFindAll (int page, int limit ,Map map);

    /**
     * 通过站点编号 查询密钥列表
     * @param station_id
     * @return
     */
    public List<Map> selectTerminalPasswordById(Integer station_id);

    /**
     * 检查该终端是否在使用密钥
     * @param terminal_id
     * @return
     */
    public String checkTerminalPassword(Integer terminal_id);
    /**
     * 根据站点编号来查询站点下的所有密钥  并做分页根据搜索条件
     * @param page
     * @param limit
     * @param map  查询条件
     * @return
     */
    public IPage findByStationIdQueryPassword(int page,int limit, Map map);
    /**
     * 根据站点编号来查询站点下的所有密钥  并做分页根据搜索条件
     * @param page
     * @param limit
     * @param map  查询条件
     * @return
     */
    public IPage findByStationIdQueryPasswordExcel(int page,int limit, Map map);

    /**
     * 根据站点id 来查终端
     * @param page
     * @param limit
     * @param map
     * @return
     */
    public  IPage findByStationIdQueryTerminal(int page,int limit, Map map);

    /**
     * 根据密钥数量新增  密钥
     * @param skr
     * @return
     */
    public  int insertTermianlKeySumAll(StationKeyRecharge skr);

    //1.把时间更新在终端密钥表中 并修改状态(sql写死了)
    public int updateKeyTimeAndStatus(String startTime,String endTime,Integer terminal_key,Integer id);

    public int updatePassword(String terminal_key_value,Integer terminal_key_id,Integer terminal_id);

    public int updatePasswordRoom(Integer terminal_key_id,Integer terminal_key_room,String terminal_key_room_type);

    public int terminalShouQuan(Integer terminal_key_id,Integer terminal_id,String terminal_key_value,String terminal_key_begin_time,String terminal_key_end_time,String terminal_room);

    public int terminalShouQuanRoom(Integer terminal_key_id,Integer terminal_id,String terminal_key_value,String terminal_key_begin_time,String terminal_key_end_time,Integer terminal_key_room,String terminal_key_room_type);

    /**
     * 查询所有密钥分页显示
     * @param page
     * @param limit
     * @param map
     * @return
     */
    public IPage selectTerminalKeys(int page, int limit, Map map);

    /**
     * 累加在线时长
     * @param cha
     * @param id
     * @return
     */
    public int updateTotalTime(int cha,int id);

    public int updateKeyTimeAndStatus2(Integer terminal_key_id,String terminal_room);

    List<TerminalListkey> selectTerminalKeysExcel();
}
